<?php
/**
 * 菜单权限基类
 * User: Administrator
 * Date: 2018\9\10 0010
 * Time: 17:35
 */

namespace app\Lib\InterfaceIn\AdminAuth;


use app\Lib\InterfaceIn\User\UserHandle;

interface MenuAuthHandle
{
    public function __construct($menuId, $cache);

    /**
     * 菜单id
     * @return int
     */
    public function getMenuId();

    /**
     * 菜单名称
     * @return string
     */
    public function getName();

    /**
     * 项目模块
     * @return string
     */
    public function getProject();

    /**
     * 菜单控制器
     * @return string
     */
    public function getC();

    /**
     * 菜单方法
     * @return string
     */
    public function getA();

    /**
     * 菜单参数
     * @return string
     */
    public function getArgs();

    /**
     * 菜单父级类
     * @return MenuAuthHandle
     */
    public function getParentClass();

    /**
     * 菜单等级
     * @return int
     */
    public function getLevel();

    /**
     * 菜单排序
     * @return int
     */
    public function getSortNo();

    /**
     * 菜单是否显示状态中文
     * @return string
     */
    public function getShowMenuStr();

    /**
     * 菜单图标样式
     * @return string
     */
    public function getMenuClass();

    /**
     * 菜单状态中文
     * @return string
     */
    public function getStatusStr();

    /**
     * 创建用户类
     * @return UserHandle
     */
    public function getCreateUserClass();

    /**
     * 创建时间
     * @return int
     */
    public function getCreateTime();

    /**
     * 修改用户类
     * @return UserHandle
     */
    public function getSaveUserClass();

    /**
     * 修改时间
     * @return int
     */
    public function getSaveTime();

    /**
     * 菜单显示状态
     * @return int
     */
    public function getShowMenu();

    /**
     * 删除类缓存
     * @return bool
     */
    public function delAllCache();

    /**
     * 删除单个字段缓存
     * @param $field
     * @return bool
     */
    public function delSingleCache($field);

    /**
     * 获取菜单标识
     * @return mixed
     */
    public function getMark();

    public function getMenuStatus();

}